package HashSet;

import java.util.*;

class Person {
    String name;
    int age;
    Person(String name, int age){
        this.name = name;
        this.age = age;
    }
    String getName(){
        return name;
    }
    int getAge(){
        return age;
    }

    @Override
    public String toString() {
        return name+":"+age;
    }

    @Override
    public int hashCode() {
        return name.hashCode();
    }

    @Override
    public boolean equals(Object obj) {
        if(this == obj){
            return true;
        }
        if(!(obj instanceof Person)){
            return false;
        }
        Person per = (Person) obj;
        boolean b = this.name.equals(per.name);
        return b;
    }
}
//在HashSet集合中添加三个Person对象，把姓名相同的人当做同一个人，禁止重复添加。要求如下：
//        1） Person类中定义name和age属性，重写hashCode()方法和equals()方法，针
//        对Person类的name属性进行比较，如果name相同，
//        hashCode()方法的返回值相同，equals()方法返回true。
public class Test {
    public static void main(String[] args) {
        HashSet hs = new HashSet();
        Person p1 = new Person("zhang",11);
        Person p2 = new Person("li",12);
        Person p3 = new Person("wang",13);
        hs.add(p1);
        hs.add(p2);
        hs.add(p3);
        System.out.println(hs);

    }
}
